package cn.tign.hz.domain.signflow;


import java.util.List;

/**
 * 实名认证类
 */
public class RealNameCertification {

    //待认证账号Id
    private String accountId;

    //办理人账号Id
    private String agentAccountId;

    /**
     * 指定默认认证类型（打开认证页面所展示的第一个认证类型）
     * ORG_BANK_TRANSFER组织机构对公账户打款认证
     * ORG_ZM_AUTHORIZE企业芝麻认证
     * ORG_LEGAL_AUTHORIZE组织机构法定代表人授权书签署认证
     */
    private String authType;

    /**
     * 指定页面显示认证方式
     * ORG_BANK_TRANSFER组织机构对公账户打款认证
     * ORG_ZM_AUTHORIZE企业芝麻认证
     * ORG_LEGAL_AUTHORIZE组织机构法定代表人授权书签署认证
     */
    private List availableAuthTypes;

    /**
     * 接收实名认证链接短信通知的手机号。传入手机号会发送邀请实名认证短信通知到该用户，
     * 并收取一次短信费用，不传入则不发送，不产生短信费用
     */
    private String receiveUrlMobileNo;

    /**
     *业务方交互上下文信息，有统计需求或者分账需求必填部分参数
     */
    private ConfigInfo configInfo;

    //个人实名认证的基本信息
    private IndivInfo indivInfo;

    //认证配置信息
    private ConfigParams configParams;

    //是否允许重复实名，默认允许
    private Boolean repeatIdentity;

    //组织机构基本信息类
    private OrgEntity orgEntity;


    public String getAccountId() {
        return accountId;
    }

    public void setAccountId(String accountId) {
        this.accountId = accountId;
    }

    public String getAgentAccountId() {
        return agentAccountId;
    }

    public void setAgentAccountId(String agentAccountId) {
        this.agentAccountId = agentAccountId;
    }

    public String getAuthType() {
        return authType;
    }

    public void setAuthType(String authType) {
        this.authType = authType;
    }

    public List getAvailableAuthTypes() {
        return availableAuthTypes;
    }

    public void setAvailableAuthTypes(List availableAuthTypes) {
        this.availableAuthTypes = availableAuthTypes;
    }

    public String getReceiveUrlMobileNo() {
        return receiveUrlMobileNo;
    }

    public void setReceiveUrlMobileNo(String receiveUrlMobileNo) {
        this.receiveUrlMobileNo = receiveUrlMobileNo;
    }

    public ConfigInfo getConfigInfo() {
        return configInfo;
    }

    public void setConfigInfo(ConfigInfo configInfo) {
        this.configInfo = configInfo;
    }

    public IndivInfo getIndivInfo() {
        return indivInfo;
    }

    public void setIndivInfo(IndivInfo indivInfo) {
        this.indivInfo = indivInfo;
    }

    public ConfigParams getConfigParams() {
        return configParams;
    }

    public void setConfigParams(ConfigParams configParams) {
        this.configParams = configParams;
    }

    public Boolean getRepeatIdentity() {
        return repeatIdentity;
    }

    public void setRepeatIdentity(Boolean repeatIdentity) {
        this.repeatIdentity = repeatIdentity;
    }

    public OrgEntity getOrgEntity() {
        return orgEntity;
    }

    public void setOrgEntity(OrgEntity orgEntity) {
        this.orgEntity = orgEntity;
    }


    @Override
    public String toString() {
        return "{" +
                "accountId:'" + accountId + '\'' +
                ", agentAccountId:'" + agentAccountId + '\'' +
                ", authType:'" + authType + '\'' +
                ", availableAuthTypes:" + availableAuthTypes +
                ", receiveUrlMobileNo:'" + receiveUrlMobileNo + '\'' +
                ", configInfo:" + configInfo +
                ", indivInfo:" + indivInfo +
                ", configParams:" + configParams +
                ", repeatIdentity:" + repeatIdentity +
                ", orgEntity:" + orgEntity +
                '}';
    }
}
